企业空间 采购商城 存储论坛
首页 > Openstack > 正文

KVM虚拟机迁移到openstack Havana的详细方法

2016-03-01 22:54来源:中国存储网
导读:KVM虚拟机迁移到openstack Havana的详细方法,1. 搭建openstack Havana,2. 从openstack folsom迁移到virt manager。

KVM虚拟机迁移到openstack Havana的详细方法

最近进行了一次实现,即KVM虚拟机迁移到openstack Havana

1.系统环境

现有系统是openstack f版,使用的openvswitch插件管理的sdn。今年十月openstack发布了H版,按照策略为了根上openstack的步伐,暂定每年升级一次,但是这次升级出现了问题。f版本的openvswitch插件使用的是长期支持版本1.4.2,系统都是centos6.3。H版的openstack使用的是centos6.4,openvswitch1.11.0.由于迁移需要增加了两台pcserver作为计算节点,一台pc作为控制节点,但是交换机资源有限只能在原系统网络拓扑中增加了这3台机器,为故障埋下了祸根。

过程中具体配置不是本文主题,由于未知影响,看网络抓包应该像是dhcp包影响到openstack f版本的生产系统,导致从早上搭建开始整个系统kernel panic一次,中午一次,晚上一次,十分郁闷等到晚上7点,无论如何起不来了,6台生产系统的HP pcserver DL380G6轮番重启。

2. 从openstack folsom迁移到virt manager。

其实也不算迁移,由于f版的生产系统无论如何起不来,也没有时间研究原因,按计划应该已经搭建完成的h版本系统也没完成,老生产系统也无法恢复。直接原因就是openvswitch1.4.2,开始考虑使用linux bridge,经过2小时研究这时已经晚上10点,发现linux bridge貌似不支持vlan,也就是说,无法使用一个网卡接口实现sdn建立不同网段的虚拟机。压力很大,心口像有一块大石丫的我好累,不知道谁唱的鸟歌。突然想到,f版的openstack管理的生产环境其实只有3个网段,0,1,2,而hp 的pcserver有4个网卡,可以去掉openstack直接使用kvm的manager,一个网卡作为管理口,剩下3个作为0,1,2每个网段的分网卡。就这么干了,马上上楼做网线,调华为交换机,trunk,vlan不是主题不说。弄好环境以后,由于openstack管理的虚拟机也是通过kvm的接口virt管理的,所以虚拟机还是在kvm上,只需要关闭openstack的所有服务,然后再kvm的virtmanager中修改对应虚拟机0,1,2网段的桥接网卡。然后启动虚拟机,修改虚拟机中的网卡,以前openstack管理的eth0卡已经不见了,给eth1手动增加ip,ping一下网关,心中暗喜,大石落地。

3. 搭建openstack Havana

过程不表了,www.openstack.org文档多的是,详细的很。

4. 将kvm管理的虚拟机迁移到H版本的openstack

说了这么多,这才是本文重点。具体步骤如下:

a.备份kvm中的虚拟机成为镜像文件,在计算节点执行

qemu-img convert -f qcow2 -O qcow2 disk newdisk 

b.停止虚拟机

c.在计算节点创建nfs将上面打快照的newdisk共享到控制节点,主要要减少大型虚拟机在结算节点和控制节点之前的拷贝,虚拟机一般500g左右。mount好以后,控制节点就会误以为镜像文件已经在自己的控制节点上了,省去了将快照镜像导入glance的步骤。

mount 192.168.0.2:/home/share/newdisk on /openstack/lib/glance/images

d.修改openstackHavana版本的数据库,修改数据库后,在havana版上新建虚拟机时才能在页面和openstack真正使用刚才假冒导入glance的虚拟机快照。细心同事写的脚本。在控制节点执行。

#!/bin/sh

iname=$1

filepath1="/tmp/$iname-1.sql"

filepath2="/tmp/$iname-2.sql"

mysql -uroot -phavana@passwd<<EOF

use glance;

load data local infile '$filepath1' into table images(id,name,size,status,is_public,created_at,updated_at,deleted_at,deleted,disk_format,container_format,checksum,owner,min_disk,min_ram,protected);

load data local infile '$filepath2' into table image_locations(image_id,value,created_at,updated_at,deleted_at,deleted,meta_data);

EOF

执行import_mysql.sh 192.168.1.xxx_20131205

inname-1.sql内容:

e340ccc1-dd65-4163-822f-348d5711313f  172.21.0.41_20131205  97956003840   active  0     2013-12-02 18:10:04   2013-12-02 19:36:10   \N    0     qcow2 ovf   e30b8b94918aad131cf4618a8efc3d78      f3267153b73d4bf09bed91eb289e26ec 0     0     0

inname-2.sql内容:

92b44daf-a529-469d-b428-dca8bc39fe4c  file:///openstack/lib/glance/images/92b44daf-a529-469d-b428-dca8bc39fe4c      2013-12-02 17:59:30   2013-12-02 17:59:30   \N    0     {}   

e.修改计算节点openstack HAVANA代码,由于我们不想让glance把快照传来传去,假装了glance的已经导入的快照,但是glance还是有办法判断,注释下面的代码让glanceclient不再判断。记得注释完pythonc编译一下,然后重启service openstack-nova-compute 服务。

vi /usr/lib/python2.6/site-packages/glanceclient/common/http.py

将501行-504行注释代码

501               #if self._checksum is not None and md5sum != self._checksum:

502               #  raise IOError(errno.EPIPE,

503               #                'Corrupted image. Checksum was %s '

504               #                'expected %s' % (md5sum, self._checksum))

f.到这一步,kvm到openstack Havana的快照镜像已经准备好了,只需要在建立虚拟机就可以了。当然具体建网络,subnet和openvswitch的port过程不说了。

5. 验证主机,一切ok,KVM虚拟机迁移到openstack Havana成功。

继续阅读
关键词 :
KVM openstack
中国存储网声明:此文观点不代表本站立场,如有版权疑问请联系我们。
相关阅读
产品推荐
头条阅读
栏目热点

Copyright @ 2006-2019 chinastor.cn 版权所有 京ICP备14047533号

中国存储网

存储第一站,存储门户,存储在线交流平台